import java.util.Scanner;

public class ThreadDemo14 {
    //volatile这个关键字就是禁止编译器进行一个自动的优化
    //此时当while循环时的两个CPU指令中的load指令就不会只执行一次了
    /*也可以让while循环执行的慢一点，然后让这个load不再是负担；
    * 此时编译器也就不会自动进行优化了*/
    volatile public static int flag = 0;
    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            while (flag == 0) {
                //空着
                /*try {
                    Thread.sleep(20);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }*/
            }
            System.out.println("循环结束 t1结束！");
        });

        Thread t2 = new Thread(() -> {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个整数：");
            flag = scanner.nextInt();
        });

        t1.start();
        t2.start();
    }
}
